0 GOTO 100 1 REM MAG READER V6.4 2 REM (C) 1986 DAVID A. HOOK 9 REM DISPLAY A SCREEN 10 PRINT "[147][146]";: OPEN 2, 8, 2, F$ 11 FOR I = FL TO LL 12 PRINT# 15, "P" + CHR$(2) + CHR$(I AND 255) + CHR$(I/256) + CHR$(1) 13 SYS AD 14 L=PEEK(142) 15 PRINT LEFT$(A$,L); 16 IFL<40 THEN PRINT CHR$(13); 17 POKE 212, 0: NEXT: CLOSE 2: RETURN 100 IF LK GOTO 600: REM AFTER PICTURE LOADS 110 POKE 55, 0: POKE 56, 32: CLR 120 A$="ABCDEFGHIJKLMNOPQRST": A$=A$+A$ 140 REM BKGD, CHAR COLORS 150 READ BB, CH 160 POKE 53280, BB: POKE 53281, BB: POKE 646, CH 180 REM PIC NAME, TYPE, BORDER COLOR 190 READ PF$, T$, KF 200 POKE 2, 2 + 2*(T$="K") + (T$="D") 220 REM ISSUE FILE NAME 230 READ F$ 250 REM MAG TITLE, ISSUE MONTH 260 READ MT$, MO$ 280 CD$="" 290 SP$=" " 310 GOSUB 1000: REM HELP 330 LP=25: AD=896: ML=49152: IF PEEK(AD)-160 THEN GOSUB 8000: REM READ DATA 350 OPEN 15, 8, 15, "I0" 370 REM GET TOTAL LINE COUNT 380 OPEN 2, 8, 2, F$ 390 SYS AD 400 LN=VAL(A$)-1: PG=LN/LP 410 CLOSE 2 420 IF LN<1 OR PG<>INT(PG) THEN PRINT: PRINT " FILE ERROR": CLOSE 15: STOP 440 REM SKIP THE LOAD IF NO HI-RES PICTURE INCLUDED 450 LK=1: IF PEEK(2)>1 THEN LK=2: GOTO 600 470 REM ADD SPECIAL CHARACTERS TO PICTURE FILE NAME 480 IF T$="K" THEN PF$=CHR$(129)+LEFT$(PF$+" ",14) 490 IF T$="D" THEN PF$="DD"+PF$ 510 LOAD PF$, 8, 1 530 END: REM NEVER GETS HERE 599 REM DISPLAY PICTURE 600 GOSUB 2000 799 REM MAIN LOOP 800 GOSUB 5000: REM SCREEN PROMPT 810 GOSUB 3000: REM GET FN KEY 820 GOTO 800 999 REM HELP SCREEN 1000 PRINT "[147]"; TAB(14); "[200]ELP [211]CREEN" 1010 PRINT TAB(14); "[163][163][163][163][163][163][163][163][163][163][163]" 1020 PRINT " [217]OU MAY RETURN HERE BY PRESSING F2[146]." 1030 PRINT " F1[146] -- [212]ABLE OF [195]ONTENTS" 1040 PRINT " F2[146] -- [212]HIS [200][197][204][208] [211]CREEN" 1050 PRINT " F3[146] -- [199]O TO A [211]CREEN (BY ITS NUMBER)" 1060 PRINT " F5[146] -- [208]REVIOUS [211]CREEN" 1070 PRINT " F7[146] -- [206]EXT [211]CREEN" 1080 PRINT " F8[146] -- [209]UIT [205]AGAZINE" 1090 PRINT " [212]HESE PROGRAMS WERE DEVELOPED BY:" 1100 PRINT TAB(13); "[196]AVID [193]. [200]OOK" 1110 PRINT " FOR THE [194][193][210][210][201][197] [213][211][197][210] [199][210][207][213][208] ([194][213][199])" 1120 PRINT " [197]NTIRE CONTENTS OF THIS MAGAZINE ARE" 1130 PRINT " (C) 1986 BY THE [193]UTHORS WITHIN." 1140 IF LK THEN SC=0: GOTO 5000 1150 PRINT " [211]TRIKE [211][208][193][195][197] TO EXIT THE COVER PAGE." 1160 IF PEEK(2)<>2 THEN M$="([201]T'S NOW LOADING...)": GOSUB 5200: PRINT 1170 M$="[208]LEASE [211]TAND [194]Y..." 1180 GOTO 5100 1999 REM DISPLAY PICTURE 2000 IF LK=2 GOTO 2040 2010 POKE 53280, KF: SYS ML 2030 REM WAIT FOR A KEY PRESS 2040 POKE 198, 0: WAIT 198, 1 2050 POKE 53265, PEEK(53265) AND 223 2060 POKE 53270, PEEK(53270) AND 239 2070 POKE 53272, (PEEK(53272) AND 240) OR 4 2080 POKE 53280, BB: POKE 53281, BB: POKE 646, CH 2100 REM MONTHLY ISSUE SCREEN 2110 PRINT "[147][146]"; 2120 M$=MT$: GOSUB 5200 2130 PRINT: PRINT: M$=MO$: GOSUB 5200 2140 SC=0 2160 RETURN 2999 REM GET A FUNCTION KEY 3000 CP=SC 3010 GET K$: IF K$<"[133]" OR K$>"[140]" GOTO 3010 3020 ON ASC(K$)-132 GOSUB 3100, 3300, 3500, 3700, 3200, 3030, 3030, 3800 3030 RETURN 3100 SC=1: GOSUB 4000: GOTO 10 3200 GOTO 1000 3300 M$="[211][195][210][197][197][206] " + STR$(CP)+ " [197]NTER [208]AGE # ?[157]": GOSUB 5100 3310 GOSUB 6000: IF SC=0 GOTO 2000 3320 GOSUB 4000: GOTO 10 3500 SC=CP-1: GOSUB 4000: IF SC=0 GOTO 2000 3510 GOTO 10 3700 SC=CP+1: GOSUB 4000: GOTO 10 3800 CLOSE 15: POKE55, 0: POKE 56, 160: CLR: END 3999 REM SET PAGE PARAMETERS 4000 IF SC>PG THEN SC=PG 4010 IF SC<1 THEN SC=0: GOTO 4030 4020 FL=(SC-1)*LP + 2: LL=SC*LP + 1 4030 RETURN 4999 REM NORMAL SCREEN PROMPT 5000 SC$=STR$(SC) 5010 M$="[208]RESS 'F2' FOR [200][197][204][208] -- [211][195][210][197][197][206] " + SC$ 5099 REM MESSAGE ON LAST SCREEN LINE 5100 PRINT CD$; ""; SP$; CD$; 5199 REM CENTER A MESSAGE 5200 PRINT SPC((40-LEN(M$))/2); M$; 5210 RETURN 5999 REM INPUT UP TO 4 DIGITS 6000 SC$="": K=0 6010 GET K$: IF K$="" GOTO 6010 6020 IF K$=CHR$(13) AND K>0 THEN PRINT K$: GOTO 6080 6030 IF K$=CHR$(20) AND K>0 THEN K=K-1: SC$=LEFT$(SC$,K): PRINT K$; 6040 IF K=4 THEN PRINT: GOTO 6080 6050 IF K$<"0" OR K$>"9" GOTO 6010 6060 SC$=SC$+K$: K=K+1: PRINT K$; 6070 GOTO 6010 6080 SC=VAL(SC$): RETURN 6999 REM BKGD, CHAR COLORS 7000 DATA 1, 14 7099 REM PIC NAME, TYPE, BORDER COLOR 7100 DATA "PIC A", "K", 1 7199 REM ISSUE FILE NAME 7200 DATA "JUL86" 7299 REM MAG TITLE, ISSUE MONTH 7300 DATA "[212]HE [194][213][199] [206]EWSLETTER", "[202]ULY 1986" 7999 REM READ & STORE ML 8000 CK=0: FOR I=AD TO AD+41: READ DA: POKE I,DA: CK=CK+DA: NEXT 8010 IF CK<>6121 THEN PRINT "ERROR IN DATA": STOP 8030 CK=0: FOR I=ML TO ML+127: READ DA: POKE I,DA: CK=CK+DA: NEXT 8040 IF CK<>17262 THEN PRINT "ERROR IN DATA": STOP 8060 RETURN 8080 REM C64 STRING THING DATA (FILE 2) 8090 DATA 160,2,177,45,153,137,0,200,192,6,208,246,162,2 8100 DATA 32,198,255,32,228,255,201,13,240,15,164,142,145,140 8110 DATA 200,132,142,196,139,240,4,165,144,240,234,76,204,255 8130 REM ML DATA FOR MAG DISPLAY 8140 DATA 173,17,208,41,239,141,17,208,164,2,208,43,169,40,133,251 8150 DATA 162,131,134,252,162,4,169,216,160,0,32,109,192,173,22,208 8160 DATA 41,191,9,16,141,22,208,173,16,135,141,33,208,169,64,133 8170 DATA 251,162,127,134,252,208,8,169,0,133,251,162,92,134,252,169 8180 DATA 4,170,160,0,32,109,192,132,251,162,96,134,252,162,32,169 8190 DATA 32,32,109,192,173,17,208,9,34,141,17,208,173,24,208,9 8200 DATA 8,141,24,208,173,17,208,9,16,141,17,208,96,132,253,133 8210 DATA 254,177,251,145,253,200,208,249,230,252,230,254,202,208,242,96